/*
 * @Author: your name
 * @Date: 2020-11-04 19:12:03
 * @LastEditTime: 2021-05-31 18:56:29
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \ws-shop\src\request\index.js
 */
import axios from 'axios'
import { Toast } from 'vant'

const ajax = axios.create({
  baseURL: '/api'
})
const node = axios.create({
  baseURL: 'http://localhost:9577/api/v1'
})

// 请求拦截
ajax.interceptors.request.use(config => {
  // 显示加载图标
  Toast({
    type: 'loading',
    message: '加载中...',
    // 展示时长（ms），值为0时，toast不会消失
    duration: 0
  })
  return config
  // 带上所有接口都会用到的公共参数或者头信息
})

// 响应拦截
ajax.interceptors.response.use(resp => {
  // 隐藏加载图标
  Toast.clear()
  // 做一些公共错误处理，前提条件是所有接口返回的数据结构要都相同
  if (resp.status === 200) {
    if (resp.data.code === 200) {
      return resp.data.data
    }
  }
  return {
    code: 0,
    msg: 'fail'
  }
})

// 请求拦截
node.interceptors.request.use(config => {
  // 显示加载图标
  Toast({
    type: 'loading',
    message: '加载中...',
    // 展示时长（ms），值为0时，toast不会消失
    duration: 0
  })
  return config
  // 带上所有接口都会用到的公共参数或者头信息
})

// 响应拦截
node.interceptors.response.use(resp => {
  // 隐藏加载图标
  Toast.clear()
  // 做一些公共错误处理，前提条件是所有接口返回的数据结构要都相同
  if (resp.status === 200) {
    if (resp.data.code === 200) {
      return resp.data.data
    }
  }
  return {
    code: 0,
    msg: 'fail'
  }
})

// 根据id获取某一个分类商品列表
export const getCategory = (id, start) => ajax.get(`/tab/${id}?start=${start}`)
// 获取所有商品分类
export const getTabs = () => ajax.get('/tabs')
// 根据id获取详情
export const getDetail = id => ajax.get(`/detail?id=${id}`)

// 用户注册
export const getUsers = (params) => node.post('/users', params)
// 用户登录
export const getSessions = (params) => node.post('/sessions', params)
// 意见反馈
export const getFeed = (params) => node.post('/feed', params)
// 商品信息
export const getShop = (id) => node.get('/shop', { params: { id } })
